/**
 * @deprecated 段落
 */

import './index.css'

import TextBaseElement from '../core/text-base.js'
import { LengthRegexp, LineType } from '../../utils/const.js'
import { attribute } from '../../utils/observer.js'
import { removeInvalidTextNode } from '../../utils/utils.js'

export default class LineElement extends TextBaseElement {
    /** 缩进 */
    get indent() {
        return this.getCss('text-indent')
    }

    /** 缩进 */
    set indent(val) {
        if (!LengthRegexp.test(`${val}`)) {
            val = val === true ? '2em' : false
        }
        this.setCss('text-indent', val)
    }

    /** 段落类型 */
    get type() {
        return this.attr.type || 'p'
    }

    /** 段落类型 */
    set type(val) {
        if (val === 'p' || !LineType.has(val)) {
            delete this.attr.type
        } else {
            this.attr.type = val
        }
    }

    connectedCallback() {
        // const init = () => {
        //     switch (this.type) {
        //         case 'h1':
        //             break
        //         case 'h2':
        //             break
        //         case 'h3':
        //             break
        //         case 'h4':
        //             break
        //         case 'h5':
        //             break
        //         case 'h6':
        //             break
        //         default:
        //             break
        //     }
        // }

        // 监听 type attitude 变化
        const fn = () => {
            if (!LineType.has(this.type)) {
                this.type = 'p'
                return
            }
            // init()
        }

        attribute(this, fn, false, ['type'])

        // 移除无效的文本节点（换行符）
        removeInvalidTextNode(this)
    }
}